/*
* Copyright© 2018 Shanxi Lu'an Taihang Laihui Net Tech co.,LTD.
*/
package com.laihuichuxing.train.dao;


import com.laihuichuxing.order.train.entity.Passenger;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author LiPengpeng
 */
public interface TrainOrderDao {

	/**
	 * 通过订单号查询订单详情
	 * @param orderNo
	 * @return
     */
	Map<String, Object> getTrainOrderInfo(String orderNo);

	/**
	 * getTrainOrderPassengersInfo
	 * @param orderNo
	 * @return
     */
	List<Map<String, Object>> getTrainOrderPassengersInfo(String orderNo);
	
	/**
	 *  Description: 修改火车票订单状态
	 * @author: LiPengpeng
	 * @param orderNo
	 * @param status
	 * @return
	 */
	int updateOrderStatusByOrderNo(@Param("orderNo") String orderNo,
                               @Param("status") Integer status);

	/**
	 * 修改火车票订单状态
	 * @param trainTradeNo
	 * @param status
     * @return
     */
	int updateOrderStatusByTradeNo(@Param("trainTradeNo") String trainTradeNo,
                            @Param("status") Integer status);

	/**
	 * 修改火车票乘客信息状态
	 * @param passengerTradeNo
	 * @param status
     * @return
     */
	int updateTrainpassenger(@Param("orderNo") String passengerTradeNo,
                             @Param("status") Integer status);
	
	/**
	 * 通过订单号查询火车票订单编号
	 * @author gaoxin  
	 */
	/**
	 * 通过订单号查询火车票订单编号
	 * @param orderNo
	 * @return
     */
	String getTrainTradeNo(String orderNo);
   

	/**
	 * 
	 * Description: 获取乘客信息
	 * Author: YangGuang
	 * Version: 1.0
	 * Create Date Time: 2018年6月5日 上午10:29:03.
	 * Update Date Time: 
	 * @see 
	 * @param orderNo 订单编号
	 * @param passengerId 乘客编号
	 * @return
	 */
	Passenger getPassenger(@Param("orderNo") String orderNo, @Param("passengerId") String passengerId);

	/**
	 * 查询订单列表
	 * @param userId
	 * @param page
	 * @param size
     * @return
     */
	List<Map<String,Object>> listTrainOrderByUserId(@Param("userId") String userId, @Param("page") int page, @Param("size") int size);
	/**
	 * getTrainOrderPassengersInfoByNew
	 * @param orderNo
	 * @return
     */
    List<Map<String,Object>> getTrainOrderPassengersInfoByNew(@Param("orderNo") String orderNo);
	/** 
	 * Description:
	 * @param  userId
	 * @param  dateStr
	 * @return
	 * @author QinXueFeng
	 * Create Date Time: 2018/12/14 14:58
	 * Update Date Time:
	 */ 
    Map<String, Object> getTrainOrderRecent(String userId, String dateStr);
    /** 
     * Description: 修改订单状态
     * @param  orderNo
     * @param  status
     * @return
     * @author QinXueFeng
     * Create Date Time: 2018/12/14 15:00
     * Update Date Time:
     */ 
    int updateOrderstatus(String orderNo,String status);
}
